/* $Id: tiger_sboxes.C 1117 2005-11-01 16:20:39Z max $ */

#include "tiger.h"

const u_int64_t tiger::t1[256] = {
  INT64 (0x02aab17cf7e90c5e), INT64 (0xac424b03e243a8ec),
  INT64 (0x72cd5be30dd5fcd3), INT64 (0x6d019b93f6f97f3a),
  INT64 (0xcd9978ffd21f9193), INT64 (0x7573a1c9708029e2),
  INT64 (0xb164326b922a83c3), INT64 (0x46883eee04915870),
  INT64 (0xeaace3057103ece6), INT64 (0xc54169b808a3535c),
  INT64 (0x4ce754918ddec47c), INT64 (0x0aa2f4dfdc0df40c),
  INT64 (0x10b76f18a74dbefa), INT64 (0xc6ccb6235ad1ab6a),
  INT64 (0x13726121572fe2ff), INT64 (0x1a488c6f199d921e),
  INT64 (0x4bc9f9f4da0007ca), INT64 (0x26f5e6f6e85241c7),
  INT64 (0x859079dbea5947b6), INT64 (0x4f1885c5c99e8c92),
  INT64 (0xd78e761ea96f864b), INT64 (0x8e36428c52b5c17d),
  INT64 (0x69cf6827373063c1), INT64 (0xb607c93d9bb4c56e),
  INT64 (0x7d820e760e76b5ea), INT64 (0x645c9cc6f07fdc42),
  INT64 (0xbf38a078243342e0), INT64 (0x5f6b343c9d2e7d04),
  INT64 (0xf2c28aeb600b0ec6), INT64 (0x6c0ed85f7254bcac),
  INT64 (0x71592281a4db4fe5), INT64 (0x1967fa69ce0fed9f),
  INT64 (0xfd5293f8b96545db), INT64 (0xc879e9d7f2a7600b),
  INT64 (0x860248920193194e), INT64 (0xa4f9533b2d9cc0b3),
  INT64 (0x9053836c15957613), INT64 (0xdb6dcf8afc357bf1),
  INT64 (0x18beea7a7a370f57), INT64 (0x037117ca50b99066),
  INT64 (0x6ab30a9774424a35), INT64 (0xf4e92f02e325249b),
  INT64 (0x7739db07061ccae1), INT64 (0xd8f3b49ceca42a05),
  INT64 (0xbd56be3f51382f73), INT64 (0x45faed5843b0bb28),
  INT64 (0x1c813d5c11bf1f83), INT64 (0x8af0e4b6d75fa169),
  INT64 (0x33ee18a487ad9999), INT64 (0x3c26e8eab1c94410),
  INT64 (0xb510102bc0a822f9), INT64 (0x141eef310ce6123b),
  INT64 (0xfc65b90059ddb154), INT64 (0xe0158640c5e0e607),
  INT64 (0x884e079826c3a3cf), INT64 (0x930d0d9523c535fd),
  INT64 (0x35638d754e9a2b00), INT64 (0x4085fccf40469dd5),
  INT64 (0xc4b17ad28be23a4c), INT64 (0xcab2f0fc6a3e6a2e),
  INT64 (0x2860971a6b943fcd), INT64 (0x3dde6ee212e30446),
  INT64 (0x6222f32ae01765ae), INT64 (0x5d550bb5478308fe),
  INT64 (0xa9efa98da0eda22a), INT64 (0xc351a71686c40da7),
  INT64 (0x1105586d9c867c84), INT64 (0xdcffee85fda22853),
  INT64 (0xccfbd0262c5eef76), INT64 (0xbaf294cb8990d201),
  INT64 (0xe69464f52afad975), INT64 (0x94b013afdf133e14),
  INT64 (0x06a7d1a32823c958), INT64 (0x6f95fe5130f61119),
  INT64 (0xd92ab34e462c06c0), INT64 (0xed7bde33887c71d2),
  INT64 (0x79746d6e6518393e), INT64 (0x5ba419385d713329),
  INT64 (0x7c1ba6b948a97564), INT64 (0x31987c197bfdac67),
  INT64 (0xde6c23c44b053d02), INT64 (0x581c49fed002d64d),
  INT64 (0xdd474d6338261571), INT64 (0xaa4546c3e473d062),
  INT64 (0x928fce349455f860), INT64 (0x48161bbacaab94d9),
  INT64 (0x63912430770e6f68), INT64 (0x6ec8a5e602c6641c),
  INT64 (0x87282515337ddd2b), INT64 (0x2cda6b42034b701b),
  INT64 (0xb03d37c181cb096d), INT64 (0xe108438266c71c6f),
  INT64 (0x2b3180c7eb51b255), INT64 (0xdf92b82f96c08bbc),
  INT64 (0x5c68c8c0a632f3ba), INT64 (0x5504cc861c3d0556),
  INT64 (0xabbfa4e55fb26b8f), INT64 (0x41848b0ab3baceb4),
  INT64 (0xb334a273aa445d32), INT64 (0xbca696f0a85ad881),
  INT64 (0x24f6ec65b528d56c), INT64 (0x0ce1512e90f4524a),
  INT64 (0x4e9dd79d5506d35a), INT64 (0x258905fac6ce9779),
  INT64 (0x2019295b3e109b33), INT64 (0xf8a9478b73a054cc),
  INT64 (0x2924f2f934417eb0), INT64 (0x3993357d536d1bc4),
  INT64 (0x38a81ac21db6ff8b), INT64 (0x47c4fbf17d6016bf),
  INT64 (0x1e0faadd7667e3f5), INT64 (0x7abcff62938beb96),
  INT64 (0xa78dad948fc179c9), INT64 (0x8f1f98b72911e50d),
  INT64 (0x61e48eae27121a91), INT64 (0x4d62f7ad31859808),
  INT64 (0xeceba345ef5ceaeb), INT64 (0xf5ceb25ebc9684ce),
  INT64 (0xf633e20cb7f76221), INT64 (0xa32cdf06ab8293e4),
  INT64 (0x985a202ca5ee2ca4), INT64 (0xcf0b8447cc8a8fb1),
  INT64 (0x9f765244979859a3), INT64 (0xa8d516b1a1240017),
  INT64 (0x0bd7ba3ebb5dc726), INT64 (0xe54bca55b86adb39),
  INT64 (0x1d7a3afd6c478063), INT64 (0x519ec608e7669edd),
  INT64 (0x0e5715a2d149aa23), INT64 (0x177d4571848ff194),
  INT64 (0xeeb55f3241014c22), INT64 (0x0f5e5ca13a6e2ec2),
  INT64 (0x8029927b75f5c361), INT64 (0xad139fabc3d6e436),
  INT64 (0x0d5df1a94ccf402f), INT64 (0x3e8bd948bea5dfc8),
  INT64 (0xa5a0d357bd3ff77e), INT64 (0xa2d12e251f74f645),
  INT64 (0x66fd9e525e81a082), INT64 (0x2e0c90ce7f687a49),
  INT64 (0xc2e8bcbeba973bc5), INT64 (0x000001bce509745f),
  INT64 (0x423777bbe6dab3d6), INT64 (0xd1661c7eaef06eb5),
  INT64 (0xa1781f354daacfd8), INT64 (0x2d11284a2b16affc),
  INT64 (0xf1fc4f67fa891d1f), INT64 (0x73ecc25dcb920ada),
  INT64 (0xae610c22c2a12651), INT64 (0x96e0a810d356b78a),
  INT64 (0x5a9a381f2fe7870f), INT64 (0xd5ad62ede94e5530),
  INT64 (0xd225e5e8368d1427), INT64 (0x65977b70c7af4631),
  INT64 (0x99f889b2de39d74f), INT64 (0x233f30bf54e1d143),
  INT64 (0x9a9675d3d9a63c97), INT64 (0x5470554ff334f9a8),
  INT64 (0x166acb744a4f5688), INT64 (0x70c74caab2e4aead),
  INT64 (0xf0d091646f294d12), INT64 (0x57b82a89684031d1),
  INT64 (0xefd95a5a61be0b6b), INT64 (0x2fbd12e969f2f29a),
  INT64 (0x9bd37013feff9fe8), INT64 (0x3f9b0404d6085a06),
  INT64 (0x4940c1f3166cfe15), INT64 (0x09542c4dcdf3defb),
  INT64 (0xb4c5218385cd5ce3), INT64 (0xc935b7dc4462a641),
  INT64 (0x3417f8a68ed3b63f), INT64 (0xb80959295b215b40),
  INT64 (0xf99cdaef3b8c8572), INT64 (0x018c0614f8fcb95d),
  INT64 (0x1b14accd1a3acdf3), INT64 (0x84d471f200bb732d),
  INT64 (0xc1a3110e95e8da16), INT64 (0x430a7220bf1a82b8),
  INT64 (0xb77e090d39df210e), INT64 (0x5ef4bd9f3cd05e9d),
  INT64 (0x9d4ff6da7e57a444), INT64 (0xda1d60e183d4a5f8),
  INT64 (0xb287c38417998e47), INT64 (0xfe3edc121bb31886),
  INT64 (0xc7fe3ccc980ccbef), INT64 (0xe46fb590189bfd03),
  INT64 (0x3732fd469a4c57dc), INT64 (0x7ef700a07cf1ad65),
  INT64 (0x59c64468a31d8859), INT64 (0x762fb0b4d45b61f6),
  INT64 (0x155baed099047718), INT64 (0x68755e4c3d50baa6),
  INT64 (0xe9214e7f22d8b4df), INT64 (0x2addbf532eac95f4),
  INT64 (0x32ae3909b4bd0109), INT64 (0x834df537b08e3450),
  INT64 (0xfa209da84220728d), INT64 (0x9e691d9b9efe23f7),
  INT64 (0x0446d288c4ae8d7f), INT64 (0x7b4cc524e169785b),
  INT64 (0x21d87f0135ca1385), INT64 (0xcebb400f137b8aa5),
  INT64 (0x272e2b66580796be), INT64 (0x3612264125c2b0de),
  INT64 (0x057702bdad1efbb2), INT64 (0xd4babb8eacf84be9),
  INT64 (0x91583139641bc67b), INT64 (0x8bdc2de08036e024),
  INT64 (0x603c8156f49f68ed), INT64 (0xf7d236f7dbef5111),
  INT64 (0x9727c4598ad21e80), INT64 (0xa08a0896670a5fd7),
  INT64 (0xcb4a8f4309eba9cb), INT64 (0x81af564b0f7036a1),
  INT64 (0xc0b99aa778199abd), INT64 (0x959f1ec83fc8e952),
  INT64 (0x8c505077794a81b9), INT64 (0x3acaaf8f056338f0),
  INT64 (0x07b43f50627a6778), INT64 (0x4a44ab49f5eccc77),
  INT64 (0x3bc3d6e4b679ee98), INT64 (0x9cc0d4d1cf14108c),
  INT64 (0x4406c00b206bc8a0), INT64 (0x82a18854c8d72d89),
  INT64 (0x67e366b35c3c432c), INT64 (0xb923dd61102b37f2),
  INT64 (0x56ab2779d884271d), INT64 (0xbe83e1b0ff1525af),
  INT64 (0xfb7c65d4217e49a9), INT64 (0x6bdbe0e76d48e7d4),
  INT64 (0x08df828745d9179e), INT64 (0x22ea6a9add53bd34),
  INT64 (0xe36e141c5622200a), INT64 (0x7f805d1b8cb750ee),
  INT64 (0xafe5c7a59f58e837), INT64 (0xe27f996a4fb1c23c),
  INT64 (0xd3867dfb0775f0d0), INT64 (0xd0e673de6e88891a),
  INT64 (0x123aeb9eafb86c25), INT64 (0x30f1d5d5c145b895),
  INT64 (0xbb434a2dee7269e7), INT64 (0x78cb67ecf931fa38),
  INT64 (0xf33b0372323bbf9c), INT64 (0x52d66336fb279c74),
  INT64 (0x505f33ac0afb4eaa), INT64 (0xe8a5cd99a2cce187),
  INT64 (0x534974801e2d30bb), INT64 (0x8d2d5711d5876d90),
  INT64 (0x1f1a412891bc038e), INT64 (0xd6e2e71d82e56648),
  INT64 (0x74036c3a497732b7), INT64 (0x89b67ed96361f5ab),
  INT64 (0xffed95d8f1ea02a2), INT64 (0xe72b3bd61464d43d),
  INT64 (0xa6300f170bdc4820), INT64 (0xebc18760ed78a77a),
};

const u_int64_t tiger::t2[256] = {
  INT64 (0xe6a6be5a05a12138), INT64 (0xb5a122a5b4f87c98),
  INT64 (0x563c6089140b6990), INT64 (0x4c46cb2e391f5dd5),
  INT64 (0xd932addbc9b79434), INT64 (0x08ea70e42015aff5),
  INT64 (0xd765a6673e478cf1), INT64 (0xc4fb757eab278d99),
  INT64 (0xdf11c6862d6e0692), INT64 (0xddeb84f10d7f3b16),
  INT64 (0x6f2ef604a665ea04), INT64 (0x4a8e0f0ff0e0dfb3),
  INT64 (0xa5edeef83dbcba51), INT64 (0xfc4f0a2a0ea4371e),
  INT64 (0xe83e1da85cb38429), INT64 (0xdc8ff882ba1b1ce2),
  INT64 (0xcd45505e8353e80d), INT64 (0x18d19a00d4db0717),
  INT64 (0x34a0cfeda5f38101), INT64 (0x0be77e518887caf2),
  INT64 (0x1e341438b3c45136), INT64 (0xe05797f49089ccf9),
  INT64 (0xffd23f9df2591d14), INT64 (0x543dda228595c5cd),
  INT64 (0x661f81fd99052a33), INT64 (0x8736e641db0f7b76),
  INT64 (0x15227725418e5307), INT64 (0xe25f7f46162eb2fa),
  INT64 (0x48a8b2126c13d9fe), INT64 (0xafdc541792e76eea),
  INT64 (0x03d912bfc6d1898f), INT64 (0x31b1aafa1b83f51b),
  INT64 (0xf1ac2796e42ab7d9), INT64 (0x40a3a7d7fcd2ebac),
  INT64 (0x1056136d0afbbcc5), INT64 (0x7889e1dd9a6d0c85),
  INT64 (0xd33525782a7974aa), INT64 (0xa7e25d09078ac09b),
  INT64 (0xbd4138b3eac6edd0), INT64 (0x920abfbe71eb9e70),
  INT64 (0xa2a5d0f54fc2625c), INT64 (0xc054e36b0b1290a3),
  INT64 (0xf6dd59ff62fe932b), INT64 (0x3537354511a8ac7d),
  INT64 (0xca845e9172fadcd4), INT64 (0x84f82b60329d20dc),
  INT64 (0x79c62ce1cd672f18), INT64 (0x8b09a2add124642c),
  INT64 (0xd0c1e96a19d9e726), INT64 (0x5a786a9b4ba9500c),
  INT64 (0x0e020336634c43f3), INT64 (0xc17b474aeb66d822),
  INT64 (0x6a731ae3ec9baac2), INT64 (0x8226667ae0840258),
  INT64 (0x67d4567691caeca5), INT64 (0x1d94155c4875adb5),
  INT64 (0x6d00fd985b813fdf), INT64 (0x51286efcb774cd06),
  INT64 (0x5e8834471fa744af), INT64 (0xf72ca0aee761ae2e),
  INT64 (0xbe40e4cdaee8e09a), INT64 (0xe9970bbb5118f665),
  INT64 (0x726e4beb33df1964), INT64 (0x703b000729199762),
  INT64 (0x4631d816f5ef30a7), INT64 (0xb880b5b51504a6be),
  INT64 (0x641793c37ed84b6c), INT64 (0x7b21ed77f6e97d96),
  INT64 (0x776306312ef96b73), INT64 (0xae528948e86ff3f4),
  INT64 (0x53dbd7f286a3f8f8), INT64 (0x16cadce74cfc1063),
  INT64 (0x005c19bdfa52c6dd), INT64 (0x68868f5d64d46ad3),
  INT64 (0x3a9d512ccf1e186a), INT64 (0x367e62c2385660ae),
  INT64 (0xe359e7ea77dcb1d7), INT64 (0x526c0773749abe6e),
  INT64 (0x735ae5f9d09f734b), INT64 (0x493fc7cc8a558ba8),
  INT64 (0xb0b9c1533041ab45), INT64 (0x321958ba470a59bd),
  INT64 (0x852db00b5f46c393), INT64 (0x91209b2bd336b0e5),
  INT64 (0x6e604f7d659ef19f), INT64 (0xb99a8ae2782ccb24),
  INT64 (0xccf52ab6c814c4c7), INT64 (0x4727d9afbe11727b),
  INT64 (0x7e950d0c0121b34d), INT64 (0x756f435670ad471f),
  INT64 (0xf5add442615a6849), INT64 (0x4e87e09980b9957a),
  INT64 (0x2acfa1df50aee355), INT64 (0xd898263afd2fd556),
  INT64 (0xc8f4924dd80c8fd6), INT64 (0xcf99ca3d754a173a),
  INT64 (0xfe477bacaf91bf3c), INT64 (0xed5371f6d690c12d),
  INT64 (0x831a5c285e687094), INT64 (0xc5d3c90a3708a0a4),
  INT64 (0x0f7f903717d06580), INT64 (0x19f9bb13b8fdf27f),
  INT64 (0xb1bd6f1b4d502843), INT64 (0x1c761ba38fff4012),
  INT64 (0x0d1530c4e2e21f3b), INT64 (0x8943ce69a7372c8a),
  INT64 (0xe5184e11feb5ce66), INT64 (0x618bdb80bd736621),
  INT64 (0x7d29bad68b574d0b), INT64 (0x81bb613e25e6fe5b),
  INT64 (0x071c9c10bc07913f), INT64 (0xc7beeb7909ac2d97),
  INT64 (0xc3e58d353bc5d757), INT64 (0xeb017892f38f61e8),
  INT64 (0xd4effb9c9b1cc21a), INT64 (0x99727d26f494f7ab),
  INT64 (0xa3e063a2956b3e03), INT64 (0x9d4a8b9a4aa09c30),
  INT64 (0x3f6ab7d500090fb4), INT64 (0x9cc0f2a057268ac0),
  INT64 (0x3dee9d2dedbf42d1), INT64 (0x330f49c87960a972),
  INT64 (0xc6b2720287421b41), INT64 (0x0ac59ec07c00369c),
  INT64 (0xef4eac49cb353425), INT64 (0xf450244eef0129d8),
  INT64 (0x8acc46e5caf4deb6), INT64 (0x2ffeab63989263f7),
  INT64 (0x8f7cb9fe5d7a4578), INT64 (0x5bd8f7644e634635),
  INT64 (0x427a7315bf2dc900), INT64 (0x17d0c4aa2125261c),
  INT64 (0x3992486c93518e50), INT64 (0xb4cbfee0a2d7d4c3),
  INT64 (0x7c75d6202c5ddd8d), INT64 (0xdbc295d8e35b6c61),
  INT64 (0x60b369d302032b19), INT64 (0xce42685fdce44132),
  INT64 (0x06f3ddb9ddf65610), INT64 (0x8ea4d21db5e148f0),
  INT64 (0x20b0fce62fcd496f), INT64 (0x2c1b912358b0ee31),
  INT64 (0xb28317b818f5a308), INT64 (0xa89c1e189ca6d2cf),
  INT64 (0x0c6b18576aaadbc8), INT64 (0xb65deaa91299fae3),
  INT64 (0xfb2b794b7f1027e7), INT64 (0x04e4317f443b5beb),
  INT64 (0x4b852d325939d0a6), INT64 (0xd5ae6beefb207ffc),
  INT64 (0x309682b281c7d374), INT64 (0xbae309a194c3b475),
  INT64 (0x8cc3f97b13b49f05), INT64 (0x98a9422ff8293967),
  INT64 (0x244b16b01076ff7c), INT64 (0xf8bf571c663d67ee),
  INT64 (0x1f0d6758eee30da1), INT64 (0xc9b611d97adeb9b7),
  INT64 (0xb7afd5887b6c57a2), INT64 (0x6290ae846b984fe1),
  INT64 (0x94df4cdeacc1a5fd), INT64 (0x058a5bd1c5483aff),
  INT64 (0x63166cc142ba3c37), INT64 (0x8db8526eb2f76f40),
  INT64 (0xe10880036f0d6d4e), INT64 (0x9e0523c9971d311d),
  INT64 (0x45ec2824cc7cd691), INT64 (0x575b8359e62382c9),
  INT64 (0xfa9e400dc4889995), INT64 (0xd1823ecb45721568),
  INT64 (0xdafd983b8206082f), INT64 (0xaa7d29082386a8cb),
  INT64 (0x269fcd4403b87588), INT64 (0x1b91f5f728bdd1e0),
  INT64 (0xe4669f39040201f6), INT64 (0x7a1d7c218cf04ade),
  INT64 (0x65623c29d79ce5ce), INT64 (0x2368449096c00bb1),
  INT64 (0xab9bf1879da503ba), INT64 (0xbc23ecb1a458058e),
  INT64 (0x9a58df01bb401ecc), INT64 (0xa070e868a85f143d),
  INT64 (0x4ff188307df2239e), INT64 (0x14d565b41a641183),
  INT64 (0xee13337452701602), INT64 (0x950e3dcf3f285e09),
  INT64 (0x59930254b9c80953), INT64 (0x3bf299408930da6d),
  INT64 (0xa955943f53691387), INT64 (0xa15edecaa9cb8784),
  INT64 (0x29142127352be9a0), INT64 (0x76f0371fff4e7afb),
  INT64 (0x0239f450274f2228), INT64 (0xbb073af01d5e868b),
  INT64 (0xbfc80571c10e96c1), INT64 (0xd267088568222e23),
  INT64 (0x9671a3d48e80b5b0), INT64 (0x55b5d38ae193bb81),
  INT64 (0x693ae2d0a18b04b8), INT64 (0x5c48b4ecadd5335f),
  INT64 (0xfd743b194916a1ca), INT64 (0x2577018134be98c4),
  INT64 (0xe77987e83c54a4ad), INT64 (0x28e11014da33e1b9),
  INT64 (0x270cc59e226aa213), INT64 (0x71495f756d1a5f60),
  INT64 (0x9be853fb60afef77), INT64 (0xadc786a7f7443dbf),
  INT64 (0x0904456173b29a82), INT64 (0x58bc7a66c232bd5e),
  INT64 (0xf306558c673ac8b2), INT64 (0x41f639c6b6c9772a),
  INT64 (0x216defe99fda35da), INT64 (0x11640cc71c7be615),
  INT64 (0x93c43694565c5527), INT64 (0xea038e6246777839),
  INT64 (0xf9abf3ce5a3e2469), INT64 (0x741e768d0fd312d2),
  INT64 (0x0144b883ced652c6), INT64 (0xc20b5a5ba33f8552),
  INT64 (0x1ae69633c3435a9d), INT64 (0x97a28ca4088cfdec),
  INT64 (0x8824a43c1e96f420), INT64 (0x37612fa66eeea746),
  INT64 (0x6b4cb165f9cf0e5a), INT64 (0x43aa1c06a0abfb4a),
  INT64 (0x7f4dc26ff162796b), INT64 (0x6cbacc8e54ed9b0f),
  INT64 (0xa6b7ffefd2bb253e), INT64 (0x2e25bc95b0a29d4f),
  INT64 (0x86d6a58bdef1388c), INT64 (0xded74ac576b6f054),
  INT64 (0x8030bdbc2b45805d), INT64 (0x3c81af70e94d9289),
  INT64 (0x3eff6dda9e3100db), INT64 (0xb38dc39fdfcc8847),
  INT64 (0x123885528d17b87e), INT64 (0xf2da0ed240b1b642),
  INT64 (0x44cefadcd54bf9a9), INT64 (0x1312200e433c7ee6),
  INT64 (0x9ffcc84f3a78c748), INT64 (0xf0cd1f72248576bb),
  INT64 (0xec6974053638cfe4), INT64 (0x2ba7b67c0cec4e4c),
  INT64 (0xac2f4df3e5ce32ed), INT64 (0xcb33d14326ea4c11),
  INT64 (0xa4e9044cc77e58bc), INT64 (0x5f513293d934fcef),
  INT64 (0x5dc9645506e55444), INT64 (0x50de418f317de40a),
  INT64 (0x388cb31a69dde259), INT64 (0x2db4a83455820a86),
  INT64 (0x9010a91e84711ae9), INT64 (0x4df7f0b7b1498371),
  INT64 (0xd62a2eabc0977179), INT64 (0x22fac097aa8d5c0e),
};

const u_int64_t tiger::t3[256] = {
  INT64 (0xf49fcc2ff1daf39b), INT64 (0x487fd5c66ff29281),
  INT64 (0xe8a30667fcdca83f), INT64 (0x2c9b4be3d2fcce63),
  INT64 (0xda3ff74b93fbbbc2), INT64 (0x2fa165d2fe70ba66),
  INT64 (0xa103e279970e93d4), INT64 (0xbecdec77b0e45e71),
  INT64 (0xcfb41e723985e497), INT64 (0xb70aaa025ef75017),
  INT64 (0xd42309f03840b8e0), INT64 (0x8efc1ad035898579),
  INT64 (0x96c6920be2b2abc5), INT64 (0x66af4163375a9172),
  INT64 (0x2174abdcca7127fb), INT64 (0xb33ccea64a72ff41),
  INT64 (0xf04a4933083066a5), INT64 (0x8d970acdd7289af5),
  INT64 (0x8f96e8e031c8c25e), INT64 (0xf3fec02276875d47),
  INT64 (0xec7bf310056190dd), INT64 (0xf5adb0aebb0f1491),
  INT64 (0x9b50f8850fd58892), INT64 (0x4975488358b74de8),
  INT64 (0xa3354ff691531c61), INT64 (0x0702bbe481d2c6ee),
  INT64 (0x89fb24057deded98), INT64 (0xac3075138596e902),
  INT64 (0x1d2d3580172772ed), INT64 (0xeb738fc28e6bc30d),
  INT64 (0x5854ef8f63044326), INT64 (0x9e5c52325add3bbe),
  INT64 (0x90aa53cf325c4623), INT64 (0xc1d24d51349dd067),
  INT64 (0x2051cfeea69ea624), INT64 (0x13220f0a862e7e4f),
  INT64 (0xce39399404e04864), INT64 (0xd9c42ca47086fcb7),
  INT64 (0x685ad2238a03e7cc), INT64 (0x066484b2ab2ff1db),
  INT64 (0xfe9d5d70efbf79ec), INT64 (0x5b13b9dd9c481854),
  INT64 (0x15f0d475ed1509ad), INT64 (0x0bebcd060ec79851),
  INT64 (0xd58c6791183ab7f8), INT64 (0xd1187c5052f3eee4),
  INT64 (0xc95d1192e54e82ff), INT64 (0x86eea14cb9ac6ca2),
  INT64 (0x3485beb153677d5d), INT64 (0xdd191d781f8c492a),
  INT64 (0xf60866baa784ebf9), INT64 (0x518f643ba2d08c74),
  INT64 (0x8852e956e1087c22), INT64 (0xa768cb8dc410ae8d),
  INT64 (0x38047726bfec8e1a), INT64 (0xa67738b4cd3b45aa),
  INT64 (0xad16691cec0dde19), INT64 (0xc6d4319380462e07),
  INT64 (0xc5a5876d0ba61938), INT64 (0x16b9fa1fa58fd840),
  INT64 (0x188ab1173ca74f18), INT64 (0xabda2f98c99c021f),
  INT64 (0x3e0580ab134ae816), INT64 (0x5f3b05b773645abb),
  INT64 (0x2501a2be5575f2f6), INT64 (0x1b2f74004e7e8ba9),
  INT64 (0x1cd7580371e8d953), INT64 (0x7f6ed89562764e30),
  INT64 (0xb15926ff596f003d), INT64 (0x9f65293da8c5d6b9),
  INT64 (0x6ecef04dd690f84c), INT64 (0x4782275fff33af88),
  INT64 (0xe41433083f820801), INT64 (0xfd0dfe409a1af9b5),
  INT64 (0x4325a3342cdb396b), INT64 (0x8ae77e62b301b252),
  INT64 (0xc36f9e9f6655615a), INT64 (0x85455a2d92d32c09),
  INT64 (0xf2c7dea949477485), INT64 (0x63cfb4c133a39eba),
  INT64 (0x83b040cc6ebc5462), INT64 (0x3b9454c8fdb326b0),
  INT64 (0x56f56a9e87ffd78c), INT64 (0x2dc2940d99f42bc6),
  INT64 (0x98f7df096b096e2d), INT64 (0x19a6e01e3ad852bf),
  INT64 (0x42a99ccbdbd4b40b), INT64 (0xa59998af45e9c559),
  INT64 (0x366295e807d93186), INT64 (0x6b48181bfaa1f773),
  INT64 (0x1fec57e2157a0a1d), INT64 (0x4667446af6201ad5),
  INT64 (0xe615ebcacfb0f075), INT64 (0xb8f31f4f68290778),
  INT64 (0x22713ed6ce22d11e), INT64 (0x3057c1a72ec3c93b),
  INT64 (0xcb46acc37c3f1f2f), INT64 (0xdbb893fd02aaf50e),
  INT64 (0x331fd92e600b9fcf), INT64 (0xa498f96148ea3ad6),
  INT64 (0xa8d8426e8b6a83ea), INT64 (0xa089b274b7735cdc),
  INT64 (0x87f6b3731e524a11), INT64 (0x118808e5cbc96749),
  INT64 (0x9906e4c7b19bd394), INT64 (0xafed7f7e9b24a20c),
  INT64 (0x6509eadeeb3644a7), INT64 (0x6c1ef1d3e8ef0ede),
  INT64 (0xb9c97d43e9798fb4), INT64 (0xa2f2d784740c28a3),
  INT64 (0x7b8496476197566f), INT64 (0x7a5be3e6b65f069d),
  INT64 (0xf96330ed78be6f10), INT64 (0xeee60de77a076a15),
  INT64 (0x2b4bee4aa08b9bd0), INT64 (0x6a56a63ec7b8894e),
  INT64 (0x02121359ba34fef4), INT64 (0x4cbf99f8283703fc),
  INT64 (0x398071350caf30c8), INT64 (0xd0a77a89f017687a),
  INT64 (0xf1c1a9eb9e423569), INT64 (0x8c7976282dee8199),
  INT64 (0x5d1737a5dd1f7abd), INT64 (0x4f53433c09a9fa80),
  INT64 (0xfa8b0c53df7ca1d9), INT64 (0x3fd9dcbc886ccb77),
  INT64 (0xc040917ca91b4720), INT64 (0x7dd00142f9d1dcdf),
  INT64 (0x8476fc1d4f387b58), INT64 (0x23f8e7c5f3316503),
  INT64 (0x032a2244e7e37339), INT64 (0x5c87a5d750f5a74b),
  INT64 (0x082b4cc43698992e), INT64 (0xdf917becb858f63c),
  INT64 (0x3270b8fc5bf86dda), INT64 (0x10ae72bb29b5dd76),
  INT64 (0x576ac94e7700362b), INT64 (0x1ad112dac61efb8f),
  INT64 (0x691bc30ec5faa427), INT64 (0xff246311cc327143),
  INT64 (0x3142368e30e53206), INT64 (0x71380e31e02ca396),
  INT64 (0x958d5c960aad76f1), INT64 (0xf8d6f430c16da536),
  INT64 (0xc8ffd13f1be7e1d2), INT64 (0x7578ae66004ddbe1),
  INT64 (0x05833f01067be646), INT64 (0xbb34b5ad3bfe586d),
  INT64 (0x095f34c9a12b97f0), INT64 (0x247ab64525d60ca8),
  INT64 (0xdcdbc6f3017477d1), INT64 (0x4a2e14d4decad24d),
  INT64 (0xbdb5e6d9be0a1eeb), INT64 (0x2a7e70f7794301ab),
  INT64 (0xdef42d8a270540fd), INT64 (0x01078ec0a34c22c1),
  INT64 (0xe5de511af4c16387), INT64 (0x7ebb3a52bd9a330a),
  INT64 (0x77697857aa7d6435), INT64 (0x004e831603ae4c32),
  INT64 (0xe7a21020ad78e312), INT64 (0x9d41a70c6ab420f2),
  INT64 (0x28e06c18ea1141e6), INT64 (0xd2b28cbd984f6b28),
  INT64 (0x26b75f6c446e9d83), INT64 (0xba47568c4d418d7f),
  INT64 (0xd80badbfe6183d8e), INT64 (0x0e206d7f5f166044),
  INT64 (0xe258a43911cbca3e), INT64 (0x723a1746b21dc0bc),
  INT64 (0xc7caa854f5d7cdd3), INT64 (0x7cac32883d261d9c),
  INT64 (0x7690c26423ba942c), INT64 (0x17e55524478042b8),
  INT64 (0xe0be477656a2389f), INT64 (0x4d289b5e67ab2da0),
  INT64 (0x44862b9c8fbbfd31), INT64 (0xb47cc8049d141365),
  INT64 (0x822c1b362b91c793), INT64 (0x4eb14655fb13dfd8),
  INT64 (0x1ecbba0714e2a97b), INT64 (0x6143459d5cde5f14),
  INT64 (0x53a8fbf1d5f0ac89), INT64 (0x97ea04d81c5e5b00),
  INT64 (0x622181a8d4fdb3f3), INT64 (0xe9bcd341572a1208),
  INT64 (0x1411258643cce58a), INT64 (0x9144c5fea4c6e0a4),
  INT64 (0x0d33d06565cf620f), INT64 (0x54a48d489f219ca1),
  INT64 (0xc43e5eac6d63c821), INT64 (0xa9728b3a72770daf),
  INT64 (0xd7934e7b20df87ef), INT64 (0xe35503b61a3e86e5),
  INT64 (0xcae321fbc819d504), INT64 (0x129a50b3ac60bfa6),
  INT64 (0xcd5e68ea7e9fb6c3), INT64 (0xb01c90199483b1c7),
  INT64 (0x3de93cd5c295376c), INT64 (0xaed52edf2ab9ad13),
  INT64 (0x2e60f512c0a07884), INT64 (0xbc3d86a3e36210c9),
  INT64 (0x35269d9b163951ce), INT64 (0x0c7d6e2ad0cdb5fa),
  INT64 (0x59e86297d87f5733), INT64 (0x298ef221898db0e7),
  INT64 (0x55000029d1a5aa7e), INT64 (0x8bc08ae1b5061b45),
  INT64 (0xc2c31c2b6c92703a), INT64 (0x94cc596baf25ef42),
  INT64 (0x0a1d73db22540456), INT64 (0x04b6a0f9d9c4179a),
  INT64 (0xeffdafa2ae3d3c60), INT64 (0xf7c8075bb49496c4),
  INT64 (0x9cc5c7141d1cd4e3), INT64 (0x78bd1638218e5534),
  INT64 (0xb2f11568f850246a), INT64 (0xedfabcfa9502bc29),
  INT64 (0x796ce5f2da23051b), INT64 (0xaae128b0dc93537c),
  INT64 (0x3a493da0ee4b29ae), INT64 (0xb5df6b2c416895d7),
  INT64 (0xfcabbd25122d7f37), INT64 (0x70810b58105dc4b1),
  INT64 (0xe10fdd37f7882a90), INT64 (0x524dcab5518a3f5c),
  INT64 (0x3c9e85878451255b), INT64 (0x4029828119bd34e2),
  INT64 (0x74a05b6f5d3ceccb), INT64 (0xb610021542e13eca),
  INT64 (0x0ff979d12f59e2ac), INT64 (0x6037da27e4f9cc50),
  INT64 (0x5e92975a0df1847d), INT64 (0xd66de190d3e623fe),
  INT64 (0x5032d6b87b568048), INT64 (0x9a36b7ce8235216e),
  INT64 (0x80272a7a24f64b4a), INT64 (0x93efed8b8c6916f7),
  INT64 (0x37ddbff44cce1555), INT64 (0x4b95db5d4b99bd25),
  INT64 (0x92d3fda169812fc0), INT64 (0xfb1a4a9a90660bb6),
  INT64 (0x730c196946a4b9b2), INT64 (0x81e289aa7f49da68),
  INT64 (0x64669a0f83b1a05f), INT64 (0x27b3ff7d9644f48b),
  INT64 (0xcc6b615c8db675b3), INT64 (0x674f20b9bcebbe95),
  INT64 (0x6f31238275655982), INT64 (0x5ae488713e45cf05),
  INT64 (0xbf619f9954c21157), INT64 (0xeabac46040a8eae9),
  INT64 (0x454c6fe9f2c0c1cd), INT64 (0x419cf6496412691c),
  INT64 (0xd3dc3bef265b0f70), INT64 (0x6d0e60f5c3578a9e),
};

const u_int64_t tiger::t4[256] = {
  INT64 (0x5b0e608526323c55), INT64 (0x1a46c1a9fa1b59f5),
  INT64 (0xa9e245a17c4c8ffa), INT64 (0x65ca5159db2955d7),
  INT64 (0x05db0a76ce35afc2), INT64 (0x81eac77ea9113d45),
  INT64 (0x528ef88ab6ac0a0d), INT64 (0xa09ea253597be3ff),
  INT64 (0x430ddfb3ac48cd56), INT64 (0xc4b3a67af45ce46f),
  INT64 (0x4ececfd8fbe2d05e), INT64 (0x3ef56f10b39935f0),
  INT64 (0x0b22d6829cd619c6), INT64 (0x17fd460a74df2069),
  INT64 (0x6cf8cc8e8510ed40), INT64 (0xd6c824bf3a6ecaa7),
  INT64 (0x61243d581a817049), INT64 (0x048bacb6bbc163a2),
  INT64 (0xd9a38ac27d44cc32), INT64 (0x7fddff5baaf410ab),
  INT64 (0xad6d495aa804824b), INT64 (0xe1a6a74f2d8c9f94),
  INT64 (0xd4f7851235dee8e3), INT64 (0xfd4b7f886540d893),
  INT64 (0x247c20042aa4bfda), INT64 (0x096ea1c517d1327c),
  INT64 (0xd56966b4361a6685), INT64 (0x277da5c31221057d),
  INT64 (0x94d59893a43acff7), INT64 (0x64f0c51ccdc02281),
  INT64 (0x3d33bcc4ff6189db), INT64 (0xe005cb184ce66af1),
  INT64 (0xff5ccd1d1db99bea), INT64 (0xb0b854a7fe42980f),
  INT64 (0x7bd46a6a718d4b9f), INT64 (0xd10fa8cc22a5fd8c),
  INT64 (0xd31484952be4bd31), INT64 (0xc7fa975fcb243847),
  INT64 (0x4886ed1e5846c407), INT64 (0x28cddb791eb70b04),
  INT64 (0xc2b00be2f573417f), INT64 (0x5c9590452180f877),
  INT64 (0x7a6bddfff370eb00), INT64 (0xce509e38d6d9d6a4),
  INT64 (0xebeb0f00647fa702), INT64 (0x1dcc06cf76606f06),
  INT64 (0xe4d9f28ba286ff0a), INT64 (0xd85a305dc918c262),
  INT64 (0x475b1d8732225f54), INT64 (0x2d4fb51668ccb5fe),
  INT64 (0xa679b9d9d72bba20), INT64 (0x53841c0d912d43a5),
  INT64 (0x3b7eaa48bf12a4e8), INT64 (0x781e0e47f22f1ddf),
  INT64 (0xeff20ce60ab50973), INT64 (0x20d261d19dffb742),
  INT64 (0x16a12b03062a2e39), INT64 (0x1960eb2239650495),
  INT64 (0x251c16fed50eb8b8), INT64 (0x9ac0c330f826016e),
  INT64 (0xed152665953e7671), INT64 (0x02d63194a6369570),
  INT64 (0x5074f08394b1c987), INT64 (0x70ba598c90b25ce1),
  INT64 (0x794a15810b9742f6), INT64 (0x0d5925e9fcaf8c6c),
  INT64 (0x3067716cd868744e), INT64 (0x910ab077e8d7731b),
  INT64 (0x6a61bbdb5ac42f61), INT64 (0x93513efbf0851567),
  INT64 (0xf494724b9e83e9d5), INT64 (0xe887e1985c09648d),
  INT64 (0x34b1d3c675370cfd), INT64 (0xdc35e433bc0d255d),
  INT64 (0xd0aab84234131be0), INT64 (0x08042a50b48b7eaf),
  INT64 (0x9997c4ee44a3ab35), INT64 (0x829a7b49201799d0),
  INT64 (0x263b8307b7c54441), INT64 (0x752f95f4fd6a6ca6),
  INT64 (0x927217402c08c6e5), INT64 (0x2a8ab754a795d9ee),
  INT64 (0xa442f7552f72943d), INT64 (0x2c31334e19781208),
  INT64 (0x4fa98d7ceaee6291), INT64 (0x55c3862f665db309),
  INT64 (0xbd0610175d53b1f3), INT64 (0x46fe6cb840413f27),
  INT64 (0x3fe03792df0cfa59), INT64 (0xcfe700372eb85e8f),
  INT64 (0xa7be29e7adbce118), INT64 (0xe544ee5cde8431dd),
  INT64 (0x8a781b1b41f1873e), INT64 (0xa5c94c78a0d2f0e7),
  INT64 (0x39412e2877b60728), INT64 (0xa1265ef3afc9a62c),
  INT64 (0xbcc2770c6a2506c5), INT64 (0x3ab66dd5dce1ce12),
  INT64 (0xe65499d04a675b37), INT64 (0x7d8f523481bfd216),
  INT64 (0x0f6f64fcec15f389), INT64 (0x74efbe618b5b13c8),
  INT64 (0xacdc82b714273e1d), INT64 (0xdd40bfe003199d17),
  INT64 (0x37e99257e7e061f8), INT64 (0xfa52626904775aaa),
  INT64 (0x8bbbf63a463d56f9), INT64 (0xf0013f1543a26e64),
  INT64 (0xa8307e9f879ec898), INT64 (0xcc4c27a4150177cc),
  INT64 (0x1b432f2cca1d3348), INT64 (0xde1d1f8f9f6fa013),
  INT64 (0x606602a047a7ddd6), INT64 (0xd237ab64cc1cb2c7),
  INT64 (0x9b938e7225fcd1d3), INT64 (0xec4e03708e0ff476),
  INT64 (0xfeb2fbda3d03c12d), INT64 (0xae0bced2ee43889a),
  INT64 (0x22cb8923ebfb4f43), INT64 (0x69360d013cf7396d),
  INT64 (0x855e3602d2d4e022), INT64 (0x073805bad01f784c),
  INT64 (0x33e17a133852f546), INT64 (0xdf4874058ac7b638),
  INT64 (0xba92b29c678aa14a), INT64 (0x0ce89fc76cfaadcd),
  INT64 (0x5f9d4e0908339e34), INT64 (0xf1afe9291f5923b9),
  INT64 (0x6e3480f60f4a265f), INT64 (0xeebf3a2ab29b841c),
  INT64 (0xe21938a88f91b4ad), INT64 (0x57dfeff845c6d3c3),
  INT64 (0x2f006b0bf62caaf2), INT64 (0x62f479ef6f75ee78),
  INT64 (0x11a55ad41c8916a9), INT64 (0xf229d29084fed453),
  INT64 (0x42f1c27b16b000e6), INT64 (0x2b1f76749823c074),
  INT64 (0x4b76eca3c2745360), INT64 (0x8c98f463b91691bd),
  INT64 (0x14bcc93cf1ade66a), INT64 (0x8885213e6d458397),
  INT64 (0x8e177df0274d4711), INT64 (0xb49b73b5503f2951),
  INT64 (0x10168168c3f96b6b), INT64 (0x0e3d963b63cab0ae),
  INT64 (0x8dfc4b5655a1db14), INT64 (0xf789f1356e14de5c),
  INT64 (0x683e68af4e51dac1), INT64 (0xc9a84f9d8d4b0fd9),
  INT64 (0x3691e03f52a0f9d1), INT64 (0x5ed86e46e1878e80),
  INT64 (0x3c711a0e99d07150), INT64 (0x5a0865b20c4e9310),
  INT64 (0x56fbfc1fe4f0682e), INT64 (0xea8d5de3105edf9b),
  INT64 (0x71abfdb12379187a), INT64 (0x2eb99de1bee77b9c),
  INT64 (0x21ecc0ea33cf4523), INT64 (0x59a4d7521805c7a1),
  INT64 (0x3896f5eb56ae7c72), INT64 (0xaa638f3db18f75dc),
  INT64 (0x9f39358dabe9808e), INT64 (0xb7defa91c00b72ac),
  INT64 (0x6b5541fd62492d92), INT64 (0x6dc6dee8f92e4d5b),
  INT64 (0x353f57abc4beea7e), INT64 (0x735769d6da5690ce),
  INT64 (0x0a234aa642391484), INT64 (0xf6f9508028f80d9d),
  INT64 (0xb8e319a27ab3f215), INT64 (0x31ad9c1151341a4d),
  INT64 (0x773c22a57bef5805), INT64 (0x45c7561a07968633),
  INT64 (0xf913da9e249dbe36), INT64 (0xda652d9b78a64c68),
  INT64 (0x4c27a97f3bc334ef), INT64 (0x76621220e66b17f4),
  INT64 (0x967743899acd7d0b), INT64 (0xf3ee5bcae0ed6782),
  INT64 (0x409f753600c879fc), INT64 (0x06d09a39b5926db6),
  INT64 (0x6f83aeb0317ac588), INT64 (0x01e6ca4a86381f21),
  INT64 (0x66ff3462d19f3025), INT64 (0x72207c24ddfd3bfb),
  INT64 (0x4af6b6d3e2ece2eb), INT64 (0x9c994dbec7ea08de),
  INT64 (0x49ace597b09a8bc4), INT64 (0xb38c4766cf0797ba),
  INT64 (0x131b9373c57c2a75), INT64 (0xb1822cce61931e58),
  INT64 (0x9d7555b909ba1c0c), INT64 (0x127fafdd937d11d2),
  INT64 (0x29da3badc66d92e4), INT64 (0xa2c1d57154c2ecbc),
  INT64 (0x58c5134d82f6fe24), INT64 (0x1c3ae3515b62274f),
  INT64 (0xe907c82e01cb8126), INT64 (0xf8ed091913e37fcb),
  INT64 (0x3249d8f9c80046c9), INT64 (0x80cf9bede388fb63),
  INT64 (0x1881539a116cf19e), INT64 (0x5103f3f76bd52457),
  INT64 (0x15b7e6f5ae47f7a8), INT64 (0xdbd7c6ded47e9ccf),
  INT64 (0x44e55c410228bb1a), INT64 (0xb647d4255edb4e99),
  INT64 (0x5d11882bb8aafc30), INT64 (0xf5098bbb29d3212a),
  INT64 (0x8fb5ea14e90296b3), INT64 (0x677b942157dd025a),
  INT64 (0xfb58e7c0a390acb5), INT64 (0x89d3674c83bd4a01),
  INT64 (0x9e2da4df4bf3b93b), INT64 (0xfcc41e328cab4829),
  INT64 (0x03f38c96ba582c52), INT64 (0xcad1bdbd7fd85db2),
  INT64 (0xbbb442c16082ae83), INT64 (0xb95fe86ba5da9ab0),
  INT64 (0xb22e04673771a93f), INT64 (0x845358c9493152d8),
  INT64 (0xbe2a488697b4541e), INT64 (0x95a2dc2dd38e6966),
  INT64 (0xc02c11ac923c852b), INT64 (0x2388b1990df2a87b),
  INT64 (0x7c8008fa1b4f37be), INT64 (0x1f70d0c84d54e503),
  INT64 (0x5490adec7ece57d4), INT64 (0x002b3c27d9063a3a),
  INT64 (0x7eaea3848030a2bf), INT64 (0xc602326ded2003c0),
  INT64 (0x83a7287d69a94086), INT64 (0xc57a5fcb30f57a8a),
  INT64 (0xb56844e479ebe779), INT64 (0xa373b40f05dcbce9),
  INT64 (0xd71a786e88570ee2), INT64 (0x879cbacdbde8f6a0),
  INT64 (0x976ad1bcc164a32f), INT64 (0xab21e25e9666d78b),
  INT64 (0x901063aae5e5c33c), INT64 (0x9818b34448698d90),
  INT64 (0xe36487ae3e1e8abb), INT64 (0xafbdf931893bdcb4),
  INT64 (0x6345a0dc5fbbd519), INT64 (0x8628fe269b9465ca),
  INT64 (0x1e5d01603f9c51ec), INT64 (0x4de44006a15049b7),
  INT64 (0xbf6c70e5f776cbb1), INT64 (0x411218f2ef552bed),
  INT64 (0xcb0c0708705a36a3), INT64 (0xe74d14754f986044),
  INT64 (0xcd56d9430ea8280e), INT64 (0xc12591d7535f5065),
  INT64 (0xc83223f1720aef96), INT64 (0xc3a0396f7363a51f),
};
